package com.sdy.resdir.biz.model;

import java.util.Date;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.sdy.common.model.BaseModel;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.sdy.common.utils.DateUtil;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import org.omg.PortableInterceptor.INACTIVE;

/**
 * <p>
 * 实施工单
 * </p>
 *
 * @author hyh
 * @since 2019-10-21
 */
@Data
@EqualsAndHashCode(callSuper = true)
@Accessors(chain = true)
@ApiModel(value="RdImplementationOrder对象", description="实施工单")
public class RdImplementationOrder extends BaseModel {
    private static final long serialVersionUID = 1L;

    /**
     * 主键
     */
    @ApiModelProperty(value = "主键")
    @TableId
    private Integer id;

    /**
     * 订单号
     */
    @ApiModelProperty(value="订单号")
    private String applyNum;

    /**
     * 资源ID
     */
    @ApiModelProperty(value = "资源ID")
    private Integer resId;

    /**
     * 申请用户ID
     */
    @ApiModelProperty(value = "申请用户ID")
    private Integer userId;

    @ApiModelProperty(value = "部门id")
    private Integer deptId;

    /**
     * 资源名称
     */
    @ApiModelProperty(value = "资源名称")
    private String resName;

    /**
     * 资源唯一标识
     */
    @ApiModelProperty(value = "资源唯一标识")
    private String resUniqueCode;

    /**
     * 实施工单号
     */
    @ApiModelProperty(value = "实施工单号")
    private String implementationWorkOrder;

    /**
     * 资源类型
     */
    @ApiModelProperty(value = "资源类型")
    private Integer resType;

    /**
     * 资源消费者
     */
    @ApiModelProperty(value = "资源消费者")
    private String resourceConsumers;

    /**
     * 审批时间
     */
    @ApiModelProperty(value = "审批时间")
    @JsonFormat(pattern = DateUtil.DATETIME_FORMAT)
    private Date approvalTime;

    /**
     * 资源状态
     */
    @ApiModelProperty(value = "资源状态 0-异常 1-正常 ")
    private Integer resState;

    /**
     * 实施状态
     */
    @ApiModelProperty(value = "实施状态 （0实施中 1实施完成 2实施中止 3已回收 4资源待回收）")
    private Integer implementationState;

    /**
     * 开始时间
     */
    @ApiModelProperty(value = "开始时间")
    @JsonFormat(pattern = DateUtil.DATETIME_FORMAT)
    private Date startTime;

    /**
     * 未上线实施工单确认情况（1.提供部门已确认,2.数据局已确认）
     */
    @ApiModelProperty(value = "为上线实施工单确认情况")
    private Integer firmlyState;

    /**
     * 工单类型（1.申请使用，2.申请上线）
     */
    @ApiModelProperty(value = "工单类型")
    private Integer orderType;

    /**
     * 取消实施的理由
     */
    @ApiModelProperty(value = "取消实施的理由")
    private String cancelReason;

    /**
     * 预选资源类型(1.服务接口类 2.服务页面类 3.数据交换类)
     */
    @ApiModelProperty(value = "预选资源类型(1.服务接口类 2.服务页面类 3.数据交换类)")
    private Integer preselectResType;

    @ApiModelProperty(value = "未上线实施工单对应申请单")
    @TableField(exist = false)
    private RdResForOnline rdResForOnline;

    @ApiModelProperty(value = "已上线实施工单对应申请单")
    @TableField(exist = false)
    private RdResourceApplicationDetail rdResourceApplicationDetail;

    @ApiModelProperty(value = "修改实施工单状态的用户id")
    private Integer finishUserid;

    @ApiModelProperty(value = "修改实施工单状态的用户名")
    private String finishUsername;

    @ApiModelProperty(value = "修改实施工单状态的用户部门名称")
    @TableField(exist = false)
    private String finishDeptName;
}
